// import 'package:flutter/material.dart';
// import 'package:ichinesereader/constants.dart';
// import 'package:ichinesereader/controller/cache.dart';
// import 'package:ichinesereader/controller/evaluation.dart';
// import 'package:ichinesereader/models/evaluation/evaluationSkillProgressResult.dart';
// import 'package:ichinesereader/utils/helper.dart';
// import 'package:ichinesereader/utils/log.dart';
// import 'package:ichinesereader/widgets/layouts/customAppBar.dart';
// import 'package:syncfusion_flutter_gauges/gauges.dart';
// import 'package:hive_flutter/hive_flutter.dart';
// import 'package:get/get.dart';
// import 'package:syncfusion_flutter_treemap/treemap.dart';

// class EvaluationLinguisticSkillProgressTreeMap extends StatefulWidget {
//   EvaluationLinguisticSkillProgressTreeMap({Key? key, required this.skillType})
//       : super(key: key);
//   final String skillType;

//   @override
//   State<EvaluationLinguisticSkillProgressTreeMap> createState() =>
//       _EvaluationLinguisticSkillProgressTreeMapState();
// }

// class _EvaluationLinguisticSkillProgressTreeMapState
//     extends State<EvaluationLinguisticSkillProgressTreeMap> {
//   final box = Hive.box('appconfig');
//   final EvaluationController controller = Get.find();

//   @override
//   void initState() {
//     String _classId = box.get(CacheManagerKey['currentclass'].toString()) ?? '';
//     bool isTeacher = box.get(CacheManagerKey['nanhairole'].toString()) ==
//         Constants.NanhaiRole_Teacher;
//     var evaluationSkillType = Constants.evaluationLinguisticTypes
//         .where((element) => element.skill == widget.skillType)
//         .first;
//     // int _currentLevel =
//     //     (box.get(CacheManagerKey['eveluationlevel'].toString()) as double)
//     //         .toInt();
//     int _currentLevel;
//     try {
//       if (isTeacher) {
//         _currentLevel =
//             (box.get(CacheManagerKey['eveluationlevel'].toString()) as double)
//                 .toInt();
//       } else {
//         _currentLevel = int.tryParse(
//                 box.get("UserLevel").toString().replaceAll('level', '')) ??
//             1;
//       }
//     } catch (error) {
//       _currentLevel = 1;
//     }

//     Future.delayed(Duration(milliseconds: 200), () {
//       if (_classId != '') {
//         controller.fetchEvaluationLinguisticKnowledgesProgressData(
//             _classId, _currentLevel.toString(), evaluationSkillType.value);
//       }
//     });
//     super.initState();
//   }

//   @override
//   Widget build(BuildContext context) {
//     Log.debug('build evaluation linguistic skill progress treemap');

//     return Scaffold(
//       appBar: CustomAppBar(title: this.widget.skillType),
//       body: Center(
//         child: Column(
//           children: [
//             Expanded(
//               child: controller.obx(
//                 (data) {
//                   if (controller.evaluationSkillProgressData.length > 0) {
//                     return GestureDetector(
//                       onTap: () {
//                         // to add show details
//                       },
//                       child: SfTreemap(
//                         dataCount:
//                             controller.evaluationSkillProgressData.length,
//                         weightValueMapper: (int index) {
//                           return 1;
//                           // return controller
//                           //         .evaluationSkillProgressData[index].progress!
//                           //         .toDouble() +
//                           //     1;
//                         },
//                         levels: [
//                           TreemapLevel(
//                               groupMapper: (int index) {
//                                 return controller
//                                     .evaluationSkillProgressData[index]
//                                     .userName;
//                               },
//                               color: Get.theme.primaryColorLight,
//                               labelBuilder:
//                                   (BuildContext context, TreemapTile tile) {
//                                 var sData =
//                                     controller.evaluationSkillProgressData
//                                         .where(
//                                           (element) =>
//                                               element.userName == tile.group,
//                                         )
//                                         .first;
//                                 double _percentage =
//                                     (sData.progress! / sData.total!) * 100;
//                                 return Padding(
//                                   padding: const EdgeInsets.all(8.0),
//                                   child: Text(
//                                     '${tile.group} - ${_percentage.toInt().toString()}%',
//                                     style: TextStyle(color: Colors.black),
//                                   ),
//                                 );
//                               }),
//                         ],
//                       ),
//                     );
//                   } else {
//                     return Visibility(
//                       child: Text(''),
//                       visible: false,
//                     );
//                   }
//                 },
//                 onEmpty: Text('Data not available ...'.tr),
//                 //onLoading: Center(child: CircularProgressIndicator()),
//               ),
//             ),
//           ],
//         ),
//       ),
//     );
//   }

//   // ignore: unused_element
//   SfRadialGauge _buildLinguisticGauge(
//       String skillType, SkillProgressItem progressData) {
//     String _cstring = Constants.evaluationLinguisticTypes
//         .where((element) => element.skill == skillType)
//         .first
//         .color
//         .toString();
//     return SfRadialGauge(
//       enableLoadingAnimation: true,
//       animationDuration: 2500,
//       axes: <RadialAxis>[
//         RadialAxis(
//             axisLineStyle: const AxisLineStyle(
//                 thicknessUnit: GaugeSizeUnit.factor, thickness: 0.2),
//             radiusFactor: 0.8,
//             showTicks: false,
//             interval: 10,
//             showFirstLabel: false,
//             showLastLabel: true,
//             maximum: 100,
//             axisLabelStyle: const GaugeTextStyle(),
//             annotations: <GaugeAnnotation>[
//               GaugeAnnotation(
//                   angle: 180,
//                   widget: Row(
//                     mainAxisSize: MainAxisSize.min,
//                     children: <Widget>[
//                       //Image.asset(_image),
//                       Text(
//                         '$skillType',
//                         style: TextStyle(
//                             fontFamily: 'Times',
//                             fontSize: 14,
//                             fontWeight: FontWeight.w400,
//                             fontStyle: FontStyle.italic),
//                       ),
//                     ],
//                   )),
//             ],
//             pointers: <GaugePointer>[
//               NeedlePointer(
//                   enableAnimation: true,
//                   gradient: const LinearGradient(colors: <Color>[
//                     Color.fromRGBO(203, 126, 223, 0),
//                     Color(0xffd8ffff)
//                   ], stops: <double>[
//                     0.25,
//                     0.75
//                   ], begin: Alignment.bottomCenter, end: Alignment.topCenter),
//                   animationType: AnimationType.easeOutBack,
//                   value: progressData.progress!.toDouble(),
//                   animationDuration: 1300,
//                   needleStartWidth: 2,
//                   needleEndWidth: 4,
//                   needleLength: 0.7,
//                   knobStyle: const KnobStyle(
//                     knobRadius: 0,
//                   )),
//               RangePointer(
//                   value: progressData.progress!.toDouble(),
//                   width: 0.20,
//                   sizeUnit: GaugeSizeUnit.factor,
//                   color: hexStringToHexInt(_cstring),
//                   animationDuration: 1300,
//                   animationType: AnimationType.easeOutBack,
//                   enableAnimation: true)
//             ])
//       ],
//     );
//   }
// }
